Home | History | Annotate | Download | only in atlantis
      1 /**
      2  * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
      3  * ALL RIGHTS RESERVED
      4  * Permission to use, copy, modify, and distribute this software for
      5  * any purpose and without fee is hereby granted, provided that the above
      6  * copyright notice appear in all copies and that both the copyright notice
      7  * and this permission notice appear in supporting documentation, and that
      8  * the name of Silicon Graphics, Inc. not be used in advertising
      9  * or publicity pertaining to distribution of the software without specific,
     10  * written prior permission.
     11  *
     12  * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
     13  * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
     14  * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
     15  * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
     16  * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
     17  * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
     18  * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
     19  * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
     20  * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
     21  * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
     22  * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
     23  * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
     24  *
     25  * US Government Users Restricted Rights
     26  * Use, duplication, or disclosure by the Government is subject to
     27  * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
     28  * (c)(1)(ii) of the Rights in Technical Data and Computer Software
     29  * clause at DFARS 252.227-7013 and/or in similar or successor
     30  * clauses in the FAR or the DOD or NASA FAR Supplement.
     31  * Unpublished-- rights reserved under the copyright laws of the
     32  * United States.  Contractor/manufacturer is Silicon Graphics,
     33  * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
     34  *
     35  * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
     36  */
     37 #include <GLUT/glut.h>
     38 #include <math.h>
     39 #include "atlantis.h"
     40 /* *INDENT-OFF* */
     41 static float N002[3] = {0.000077 ,-0.020611 ,0.999788};
     42 static float N003[3] = {0.961425 ,0.258729 ,-0.093390};
     43 static float N004[3] = {0.510811 ,-0.769633 ,-0.383063};
     44 static float N005[3] = {0.400123 ,0.855734 ,-0.328055};
     45 static float N006[3] = {-0.770715 ,0.610204 ,-0.183440};
     46 static float N007[3] = {-0.915597 ,-0.373345 ,-0.149316};
     47 static float N008[3] = {-0.972788 ,0.208921 ,-0.100179};
     48 static float N009[3] = {-0.939713 ,-0.312268 ,-0.139383};
     49 static float N010[3] = {-0.624138 ,-0.741047 ,-0.247589};
     50 static float N011[3] = {0.591434 ,-0.768401 ,-0.244471};
     51 static float N012[3] = {0.935152 ,-0.328495 ,-0.132598};
     52 static float N013[3] = {0.997102 ,0.074243 ,-0.016593};
     53 static float N014[3] = {0.969995 ,0.241712 ,-0.026186};
     54 static float N015[3] = {0.844539 ,0.502628 ,-0.184714};
     55 static float N016[3] = {-0.906608 ,0.386308 ,-0.169787};
     56 static float N017[3] = {-0.970016 ,0.241698 ,-0.025516};
     57 static float N018[3] = {-0.998652 ,0.050493 ,-0.012045};
     58 static float N019[3] = {-0.942685 ,-0.333051 ,-0.020556};
     59 static float N020[3] = {-0.660944 ,-0.750276 ,0.015480};
     60 static float N021[3] = {0.503549 ,-0.862908 ,-0.042749};
     61 static float N022[3] = {0.953202 ,-0.302092 ,-0.012089};
     62 static float N023[3] = {0.998738 ,0.023574 ,0.044344};
     63 static float N024[3] = {0.979297 ,0.193272 ,0.060202};
     64 static float N025[3] = {0.798300 ,0.464885 ,0.382883};
     65 static float N026[3] = {-0.756590 ,0.452403 ,0.472126};
     66 static float N027[3] = {-0.953855 ,0.293003 ,0.065651};
     67 static float N028[3] = {-0.998033 ,0.040292 ,0.048028};
     68 static float N029[3] = {-0.977079 ,-0.204288 ,0.059858};
     69 static float N030[3] = {-0.729117 ,-0.675304 ,0.111140};
     70 static float N031[3] = {0.598361 ,-0.792753 ,0.116221};
     71 static float N032[3] = {0.965192 ,-0.252991 ,0.066332};
     72 static float N033[3] = {0.998201 ,-0.002790 ,0.059892};
     73 static float N034[3] = {0.978657 ,0.193135 ,0.070207};
     74 static float N035[3] = {0.718815 ,0.680392 ,0.142733};
     75 static float N036[3] = {-0.383096 ,0.906212 ,0.178936};
     76 static float N037[3] = {-0.952831 ,0.292590 ,0.080647};
     77 static float N038[3] = {-0.997680 ,0.032417 ,0.059861};
     78 static float N039[3] = {-0.982629 ,-0.169881 ,0.074700};
     79 static float N040[3] = {-0.695424 ,-0.703466 ,0.146700};
     80 static float N041[3] = {0.359323 ,-0.915531 ,0.180805};
     81 static float N042[3] = {0.943356 ,-0.319387 ,0.089842};
     82 static float N043[3] = {0.998272 ,-0.032435 ,0.048993};
     83 static float N044[3] = {0.978997 ,0.193205 ,0.065084};
     84 static float N045[3] = {0.872144 ,0.470094 ,-0.135565};
     85 static float N046[3] = {-0.664282 ,0.737945 ,-0.119027};
     86 static float N047[3] = {-0.954508 ,0.288570 ,0.075107};
     87 static float N048[3] = {-0.998273 ,0.032406 ,0.048993};
     88 static float N049[3] = {-0.979908 ,-0.193579 ,0.048038};
     89 static float N050[3] = {-0.858736 ,-0.507202 ,-0.072938};
     90 static float N051[3] = {0.643545 ,-0.763887 ,-0.048237};
     91 static float N052[3] = {0.955580 ,-0.288954 ,0.058068};
     92 static float N058[3] = {0.000050 ,0.793007 ,-0.609213};
     93 static float N059[3] = {0.913510 ,0.235418 ,-0.331779};
     94 static float N060[3] = {-0.807970 ,0.495000 ,-0.319625};
     95 static float N061[3] = {0.000000 ,0.784687 ,-0.619892};
     96 static float N062[3] = {0.000000 ,-1.000000 ,0.000000};
     97 static float N063[3] = {0.000000 ,1.000000 ,0.000000};
     98 static float N064[3] = {0.000000 ,1.000000 ,0.000000};
     99 static float N065[3] = {0.000000 ,1.000000 ,0.000000};
    100 static float N066[3] = {-0.055784 ,0.257059 ,0.964784};
    101 static float N069[3] = {-0.000505 ,-0.929775 ,-0.368127};
    102 static float N070[3] = {0.000000 ,1.000000 ,0.000000};
    103 static float P002[3] = {0.00, -36.59, 5687.72};
    104 static float P003[3] = {90.00, 114.73, 724.38};
    105 static float P004[3] = {58.24, -146.84, 262.35};
    106 static float P005[3] = {27.81, 231.52, 510.43};
    107 static float P006[3] = {-27.81, 230.43, 509.76};
    108 static float P007[3] = {-46.09, -146.83, 265.84};
    109 static float P008[3] = {-90.00, 103.84, 718.53};
    110 static float P009[3] = {-131.10, -165.92, 834.85};
    111 static float P010[3] = {-27.81, -285.31, 500.00};
    112 static float P011[3] = {27.81, -285.32, 500.00};
    113 static float P012[3] = {147.96, -170.89, 845.50};
    114 static float P013[3] = {180.00, 0.00, 2000.00};
    115 static float P014[3] = {145.62, 352.67, 2000.00};
    116 static float P015[3] = {55.62, 570.63, 2000.00};
    117 static float P016[3] = {-55.62, 570.64, 2000.00};
    118 static float P017[3] = {-145.62, 352.68, 2000.00};
    119 static float P018[3] = {-180.00, 0.01, 2000.00};
    120 static float P019[3] = {-178.20, -352.66, 2001.61};
    121 static float P020[3] = {-55.63, -570.63, 2000.00};
    122 static float P021[3] = {55.62, -570.64, 2000.00};
    123 static float P022[3] = {179.91, -352.69, 1998.39};
    124 static float P023[3] = {150.00, 0.00, 3000.00};
    125 static float P024[3] = {121.35, 293.89, 3000.00};
    126 static float P025[3] = {46.35, 502.93, 2883.09};
    127 static float P026[3] = {-46.35, 497.45, 2877.24};
    128 static float P027[3] = {-121.35, 293.90, 3000.00};
    129 static float P028[3] = {-150.00, 0.00, 3000.00};
    130 static float P029[3] = {-152.21, -304.84, 2858.68};
    131 static float P030[3] = {-46.36, -475.52, 3000.00};
    132 static float P031[3] = {46.35, -475.53, 3000.00};
    133 static float P032[3] = {155.64, -304.87, 2863.50};
    134 static float P033[3] = {90.00, 0.00, 4000.00};
    135 static float P034[3] = {72.81, 176.33, 4000.00};
    136 static float P035[3] = {27.81, 285.32, 4000.00};
    137 static float P036[3] = {-27.81, 285.32, 4000.00};
    138 static float P037[3] = {-72.81, 176.34, 4000.00};
    139 static float P038[3] = {-90.00, 0.00, 4000.00};
    140 static float P039[3] = {-72.81, -176.33, 4000.00};
    141 static float P040[3] = {-27.81, -285.31, 4000.00};
    142 static float P041[3] = {27.81, -285.32, 4000.00};
    143 static float P042[3] = {72.81, -176.34, 4000.00};
    144 static float P043[3] = {30.00, 0.00, 5000.00};
    145 static float P044[3] = {24.27, 58.78, 5000.00};
    146 static float P045[3] = {9.27, 95.11, 5000.00};
    147 static float P046[3] = {-9.27, 95.11, 5000.00};
    148 static float P047[3] = {-24.27, 58.78, 5000.00};
    149 static float P048[3] = {-30.00, 0.00, 5000.00};
    150 static float P049[3] = {-24.27, -58.78, 5000.00};
    151 static float P050[3] = {-9.27, -95.10, 5000.00};
    152 static float P051[3] = {9.27, -95.11, 5000.00};
    153 static float P052[3] = {24.27, -58.78, 5000.00};
    154 static float P058[3] = {0.00, 1212.72, 2703.08};
    155 static float P059[3] = {50.36, 0.00, 108.14};
    156 static float P060[3] = {-22.18, 0.00, 108.14};
    157 static float P061[3] = {0.00, 1181.61, 6344.65};
    158 static float P062[3] = {516.45, -887.08, 2535.45};
    159 static float P063[3] = {-545.69, -879.31, 2555.63};
    160 static float P064[3] = {618.89, -1005.64, 2988.32};
    161 static float P065[3] = {-635.37, -1014.79, 2938.68};
    162 static float P066[3] = {0.00, 1374.43, 3064.18};
    163 static float P069[3] = {0.00, -418.25, 5765.04};
    164 static float P070[3] = {0.00, 1266.91, 6629.60};
    165 static float P071[3] = {-139.12, -124.96, 997.98};
    166 static float P072[3] = {-139.24, -110.18, 1020.68};
    167 static float P073[3] = {-137.33, -94.52, 1022.63};
    168 static float P074[3] = {-137.03, -79.91, 996.89};
    169 static float P075[3] = {-135.21, -91.48, 969.14};
    170 static float P076[3] = {-135.39, -110.87, 968.76};
    171 static float P077[3] = {150.23, -78.44, 995.53};
    172 static float P078[3] = {152.79, -92.76, 1018.46};
    173 static float P079[3] = {154.19, -110.20, 1020.55};
    174 static float P080[3] = {151.33, -124.15, 993.77};
    175 static float P081[3] = {150.49, -111.19, 969.86};
    176 static float P082[3] = {150.79, -92.41, 969.70};
    177 static float iP002[3] = {0.00, -36.59, 5687.72};
    178 static float iP004[3] = {58.24, -146.84, 262.35};
    179 static float iP007[3] = {-46.09, -146.83, 265.84};
    180 static float iP010[3] = {-27.81, -285.31, 500.00};
    181 static float iP011[3] = {27.81, -285.32, 500.00};
    182 static float iP023[3] = {150.00, 0.00, 3000.00};
    183 static float iP024[3] = {121.35, 293.89, 3000.00};
    184 static float iP025[3] = {46.35, 502.93, 2883.09};
    185 static float iP026[3] = {-46.35, 497.45, 2877.24};
    186 static float iP027[3] = {-121.35, 293.90, 3000.00};
    187 static float iP028[3] = {-150.00, 0.00, 3000.00};
    188 static float iP029[3] = {-121.35, -304.84, 2853.86};
    189 static float iP030[3] = {-46.36, -475.52, 3000.00};
    190 static float iP031[3] = {46.35, -475.53, 3000.00};
    191 static float iP032[3] = {121.35, -304.87, 2853.86};
    192 static float iP033[3] = {90.00, 0.00, 4000.00};
    193 static float iP034[3] = {72.81, 176.33, 4000.00};
    194 static float iP035[3] = {27.81, 285.32, 4000.00};
    195 static float iP036[3] = {-27.81, 285.32, 4000.00};
    196 static float iP037[3] = {-72.81, 176.34, 4000.00};
    197 static float iP038[3] = {-90.00, 0.00, 4000.00};
    198 static float iP039[3] = {-72.81, -176.33, 4000.00};
    199 static float iP040[3] = {-27.81, -285.31, 4000.00};
    200 static float iP041[3] = {27.81, -285.32, 4000.00};
    201 static float iP042[3] = {72.81, -176.34, 4000.00};
    202 static float iP043[3] = {30.00, 0.00, 5000.00};
    203 static float iP044[3] = {24.27, 58.78, 5000.00};
    204 static float iP045[3] = {9.27, 95.11, 5000.00};
    205 static float iP046[3] = {-9.27, 95.11, 5000.00};
    206 static float iP047[3] = {-24.27, 58.78, 5000.00};
    207 static float iP048[3] = {-30.00, 0.00, 5000.00};
    208 static float iP049[3] = {-24.27, -58.78, 5000.00};
    209 static float iP050[3] = {-9.27, -95.10, 5000.00};
    210 static float iP051[3] = {9.27, -95.11, 5000.00};
    211 static float iP052[3] = {24.27, -58.78, 5000.00};
    212 static float iP061[3] = {0.00, 1181.61, 6344.65};
    213 static float iP069[3] = {0.00, -418.25, 5765.04};
    214 static float iP070[3] = {0.00, 1266.91, 6629.60};
    215 /* *INDENT-ON* */
    216 
    217 void
    218 Fish001(void)
    219 {
    220     glBegin(GL_POLYGON);
    221     glNormal3fv(N005);
    222     glVertex3fv(P005);
    223     glNormal3fv(N059);
    224     glVertex3fv(P059);
    225     glNormal3fv(N060);
    226     glVertex3fv(P060);
    227     glNormal3fv(N006);
    228     glVertex3fv(P006);
    229     glEnd();
    230     glBegin(GL_POLYGON);
    231     glNormal3fv(N015);
    232     glVertex3fv(P015);
    233     glNormal3fv(N005);
    234     glVertex3fv(P005);
    235     glNormal3fv(N006);
    236     glVertex3fv(P006);
    237     glNormal3fv(N016);
    238     glVertex3fv(P016);
    239     glEnd();
    240     glBegin(GL_POLYGON);
    241     glNormal3fv(N006);
    242     glVertex3fv(P006);
    243     glNormal3fv(N060);
    244     glVertex3fv(P060);
    245     glNormal3fv(N008);
    246     glVertex3fv(P008);
    247     glEnd();
    248     glBegin(GL_POLYGON);
    249     glNormal3fv(N016);
    250     glVertex3fv(P016);
    251     glNormal3fv(N006);
    252     glVertex3fv(P006);
    253     glNormal3fv(N008);
    254     glVertex3fv(P008);
    255     glEnd();
    256     glBegin(GL_POLYGON);
    257     glNormal3fv(N016);
    258     glVertex3fv(P016);
    259     glNormal3fv(N008);
    260     glVertex3fv(P008);
    261     glNormal3fv(N017);
    262     glVertex3fv(P017);
    263     glEnd();
    264     glBegin(GL_POLYGON);
    265     glNormal3fv(N017);
    266     glVertex3fv(P017);
    267     glNormal3fv(N008);
    268     glVertex3fv(P008);
    269     glNormal3fv(N018);
    270     glVertex3fv(P018);
    271     glEnd();
    272     glBegin(GL_POLYGON);
    273     glNormal3fv(N008);
    274     glVertex3fv(P008);
    275     glNormal3fv(N009);
    276     glVertex3fv(P009);
    277     glNormal3fv(N018);
    278     glVertex3fv(P018);
    279     glEnd();
    280     glBegin(GL_POLYGON);
    281     glNormal3fv(N008);
    282     glVertex3fv(P008);
    283     glNormal3fv(N060);
    284     glVertex3fv(P060);
    285     glNormal3fv(N009);
    286     glVertex3fv(P009);
    287     glEnd();
    288     glBegin(GL_POLYGON);
    289     glNormal3fv(N007);
    290     glVertex3fv(P007);
    291     glNormal3fv(N010);
    292     glVertex3fv(P010);
    293     glNormal3fv(N009);
    294     glVertex3fv(P009);
    295     glEnd();
    296     glBegin(GL_POLYGON);
    297     glNormal3fv(N009);
    298     glVertex3fv(P009);
    299     glNormal3fv(N019);
    300     glVertex3fv(P019);
    301     glNormal3fv(N018);
    302     glVertex3fv(P018);
    303     glEnd();
    304     glBegin(GL_POLYGON);
    305     glNormal3fv(N009);
    306     glVertex3fv(P009);
    307     glNormal3fv(N010);
    308     glVertex3fv(P010);
    309     glNormal3fv(N019);
    310     glVertex3fv(P019);
    311     glEnd();
    312     glBegin(GL_POLYGON);
    313     glNormal3fv(N010);
    314     glVertex3fv(P010);
    315     glNormal3fv(N020);
    316     glVertex3fv(P020);
    317     glNormal3fv(N019);
    318     glVertex3fv(P019);
    319     glEnd();
    320     glBegin(GL_POLYGON);
    321     glNormal3fv(N010);
    322     glVertex3fv(P010);
    323     glNormal3fv(N011);
    324     glVertex3fv(P011);
    325     glNormal3fv(N021);
    326     glVertex3fv(P021);
    327     glNormal3fv(N020);
    328     glVertex3fv(P020);
    329     glEnd();
    330     glBegin(GL_POLYGON);
    331     glNormal3fv(N004);
    332     glVertex3fv(P004);
    333     glNormal3fv(N011);
    334     glVertex3fv(P011);
    335     glNormal3fv(N010);
    336     glVertex3fv(P010);
    337     glNormal3fv(N007);
    338     glVertex3fv(P007);
    339     glEnd();
    340     glBegin(GL_POLYGON);
    341     glNormal3fv(N004);
    342     glVertex3fv(P004);
    343     glNormal3fv(N012);
    344     glVertex3fv(P012);
    345     glNormal3fv(N011);
    346     glVertex3fv(P011);
    347     glEnd();
    348     glBegin(GL_POLYGON);
    349     glNormal3fv(N012);
    350     glVertex3fv(P012);
    351     glNormal3fv(N022);
    352     glVertex3fv(P022);
    353     glNormal3fv(N011);
    354     glVertex3fv(P011);
    355     glEnd();
    356     glBegin(GL_POLYGON);
    357     glNormal3fv(N011);
    358     glVertex3fv(P011);
    359     glNormal3fv(N022);
    360     glVertex3fv(P022);
    361     glNormal3fv(N021);
    362     glVertex3fv(P021);
    363     glEnd();
    364     glBegin(GL_POLYGON);
    365     glNormal3fv(N059);
    366     glVertex3fv(P059);
    367     glNormal3fv(N005);
    368     glVertex3fv(P005);
    369     glNormal3fv(N015);
    370     glVertex3fv(P015);
    371     glEnd();
    372     glBegin(GL_POLYGON);
    373     glNormal3fv(N015);
    374     glVertex3fv(P015);
    375     glNormal3fv(N014);
    376     glVertex3fv(P014);
    377     glNormal3fv(N003);
    378     glVertex3fv(P003);
    379     glEnd();
    380     glBegin(GL_POLYGON);
    381     glNormal3fv(N015);
    382     glVertex3fv(P015);
    383     glNormal3fv(N003);
    384     glVertex3fv(P003);
    385     glNormal3fv(N059);
    386     glVertex3fv(P059);
    387     glEnd();
    388     glBegin(GL_POLYGON);
    389     glNormal3fv(N014);
    390     glVertex3fv(P014);
    391     glNormal3fv(N013);
    392     glVertex3fv(P013);
    393     glNormal3fv(N003);
    394     glVertex3fv(P003);
    395     glEnd();
    396     glBegin(GL_POLYGON);
    397     glNormal3fv(N003);
    398     glVertex3fv(P003);
    399     glNormal3fv(N012);
    400     glVertex3fv(P012);
    401     glNormal3fv(N059);
    402     glVertex3fv(P059);
    403     glEnd();
    404     glBegin(GL_POLYGON);
    405     glNormal3fv(N013);
    406     glVertex3fv(P013);
    407     glNormal3fv(N012);
    408     glVertex3fv(P012);
    409     glNormal3fv(N003);
    410     glVertex3fv(P003);
    411     glEnd();
    412     glBegin(GL_POLYGON);
    413     glNormal3fv(N013);
    414     glVertex3fv(P013);
    415     glNormal3fv(N022);
    416     glVertex3fv(P022);
    417     glNormal3fv(N012);
    418     glVertex3fv(P012);
    419     glEnd();
    420     glBegin(GL_POLYGON);
    421     glVertex3fv(P071);
    422     glVertex3fv(P072);
    423     glVertex3fv(P073);
    424     glVertex3fv(P074);
    425     glVertex3fv(P075);
    426     glVertex3fv(P076);
    427     glEnd();
    428     glBegin(GL_POLYGON);
    429     glVertex3fv(P077);
    430     glVertex3fv(P078);
    431     glVertex3fv(P079);
    432     glVertex3fv(P080);
    433     glVertex3fv(P081);
    434     glVertex3fv(P082);
    435     glEnd();
    436 }
    437 
    438 void
    439 Fish002(void)
    440 {
    441     glBegin(GL_POLYGON);
    442     glNormal3fv(N013);
    443     glVertex3fv(P013);
    444     glNormal3fv(N014);
    445     glVertex3fv(P014);
    446     glNormal3fv(N024);
    447     glVertex3fv(P024);
    448     glNormal3fv(N023);
    449     glVertex3fv(P023);
    450     glEnd();
    451     glBegin(GL_POLYGON);
    452     glNormal3fv(N014);
    453     glVertex3fv(P014);
    454     glNormal3fv(N015);
    455     glVertex3fv(P015);
    456     glNormal3fv(N025);
    457     glVertex3fv(P025);
    458     glNormal3fv(N024);
    459     glVertex3fv(P024);
    460     glEnd();
    461     glBegin(GL_POLYGON);
    462     glNormal3fv(N016);
    463     glVertex3fv(P016);
    464     glNormal3fv(N017);
    465     glVertex3fv(P017);
    466     glNormal3fv(N027);
    467     glVertex3fv(P027);
    468     glNormal3fv(N026);
    469     glVertex3fv(P026);
    470     glEnd();
    471     glBegin(GL_POLYGON);
    472     glNormal3fv(N017);
    473     glVertex3fv(P017);
    474     glNormal3fv(N018);
    475     glVertex3fv(P018);
    476     glNormal3fv(N028);
    477     glVertex3fv(P028);
    478     glNormal3fv(N027);
    479     glVertex3fv(P027);
    480     glEnd();
    481     glBegin(GL_POLYGON);
    482     glNormal3fv(N020);
    483     glVertex3fv(P020);
    484     glNormal3fv(N021);
    485     glVertex3fv(P021);
    486     glNormal3fv(N031);
    487     glVertex3fv(P031);
    488     glNormal3fv(N030);
    489     glVertex3fv(P030);
    490     glEnd();
    491     glBegin(GL_POLYGON);
    492     glNormal3fv(N013);
    493     glVertex3fv(P013);
    494     glNormal3fv(N023);
    495     glVertex3fv(P023);
    496     glNormal3fv(N022);
    497     glVertex3fv(P022);
    498     glEnd();
    499     glBegin(GL_POLYGON);
    500     glNormal3fv(N022);
    501     glVertex3fv(P022);
    502     glNormal3fv(N023);
    503     glVertex3fv(P023);
    504     glNormal3fv(N032);
    505     glVertex3fv(P032);
    506     glEnd();
    507     glBegin(GL_POLYGON);
    508     glNormal3fv(N022);
    509     glVertex3fv(P022);
    510     glNormal3fv(N032);
    511     glVertex3fv(P032);
    512     glNormal3fv(N031);
    513     glVertex3fv(P031);
    514     glEnd();
    515     glBegin(GL_POLYGON);
    516     glNormal3fv(N022);
    517     glVertex3fv(P022);
    518     glNormal3fv(N031);
    519     glVertex3fv(P031);
    520     glNormal3fv(N021);
    521     glVertex3fv(P021);
    522     glEnd();
    523     glBegin(GL_POLYGON);
    524     glNormal3fv(N018);
    525     glVertex3fv(P018);
    526     glNormal3fv(N019);
    527     glVertex3fv(P019);
    528     glNormal3fv(N029);
    529     glVertex3fv(P029);
    530     glEnd();
    531     glBegin(GL_POLYGON);
    532     glNormal3fv(N018);
    533     glVertex3fv(P018);
    534     glNormal3fv(N029);
    535     glVertex3fv(P029);
    536     glNormal3fv(N028);
    537     glVertex3fv(P028);
    538     glEnd();
    539     glBegin(GL_POLYGON);
    540     glNormal3fv(N019);
    541     glVertex3fv(P019);
    542     glNormal3fv(N020);
    543     glVertex3fv(P020);
    544     glNormal3fv(N030);
    545     glVertex3fv(P030);
    546     glEnd();
    547     glBegin(GL_POLYGON);
    548     glNormal3fv(N019);
    549     glVertex3fv(P019);
    550     glNormal3fv(N030);
    551     glVertex3fv(P030);
    552     glNormal3fv(N029);
    553     glVertex3fv(P029);
    554     glEnd();
    555 }
    556 
    557 void
    558 Fish003(void)
    559 {
    560     glBegin(GL_POLYGON);
    561     glNormal3fv(N032);
    562     glVertex3fv(P032);
    563     glNormal3fv(N023);
    564     glVertex3fv(P023);
    565     glNormal3fv(N033);
    566     glVertex3fv(P033);
    567     glNormal3fv(N042);
    568     glVertex3fv(P042);
    569     glEnd();
    570     glBegin(GL_POLYGON);
    571     glNormal3fv(N031);
    572     glVertex3fv(P031);
    573     glNormal3fv(N032);
    574     glVertex3fv(P032);
    575     glNormal3fv(N042);
    576     glVertex3fv(P042);
    577     glNormal3fv(N041);
    578     glVertex3fv(P041);
    579     glEnd();
    580     glBegin(GL_POLYGON);
    581     glNormal3fv(N023);
    582     glVertex3fv(P023);
    583     glNormal3fv(N024);
    584     glVertex3fv(P024);
    585     glNormal3fv(N034);
    586     glVertex3fv(P034);
    587     glNormal3fv(N033);
    588     glVertex3fv(P033);
    589     glEnd();
    590     glBegin(GL_POLYGON);
    591     glNormal3fv(N024);
    592     glVertex3fv(P024);
    593     glNormal3fv(N025);
    594     glVertex3fv(P025);
    595     glNormal3fv(N035);
    596     glVertex3fv(P035);
    597     glNormal3fv(N034);
    598     glVertex3fv(P034);
    599     glEnd();
    600     glBegin(GL_POLYGON);
    601     glNormal3fv(N030);
    602     glVertex3fv(P030);
    603     glNormal3fv(N031);
    604     glVertex3fv(P031);
    605     glNormal3fv(N041);
    606     glVertex3fv(P041);
    607     glNormal3fv(N040);
    608     glVertex3fv(P040);
    609     glEnd();
    610     glBegin(GL_POLYGON);
    611     glNormal3fv(N025);
    612     glVertex3fv(P025);
    613     glNormal3fv(N026);
    614     glVertex3fv(P026);
    615     glNormal3fv(N036);
    616     glVertex3fv(P036);
    617     glNormal3fv(N035);
    618     glVertex3fv(P035);
    619     glEnd();
    620     glBegin(GL_POLYGON);
    621     glNormal3fv(N026);
    622     glVertex3fv(P026);
    623     glNormal3fv(N027);
    624     glVertex3fv(P027);
    625     glNormal3fv(N037);
    626     glVertex3fv(P037);
    627     glNormal3fv(N036);
    628     glVertex3fv(P036);
    629     glEnd();
    630     glBegin(GL_POLYGON);
    631     glNormal3fv(N027);
    632     glVertex3fv(P027);
    633     glNormal3fv(N028);
    634     glVertex3fv(P028);
    635     glNormal3fv(N038);
    636     glVertex3fv(P038);
    637     glNormal3fv(N037);
    638     glVertex3fv(P037);
    639     glEnd();
    640     glBegin(GL_POLYGON);
    641     glNormal3fv(N028);
    642     glVertex3fv(P028);
    643     glNormal3fv(N029);
    644     glVertex3fv(P029);
    645     glNormal3fv(N039);
    646     glVertex3fv(P039);
    647     glNormal3fv(N038);
    648     glVertex3fv(P038);
    649     glEnd();
    650     glBegin(GL_POLYGON);
    651     glNormal3fv(N029);
    652     glVertex3fv(P029);
    653     glNormal3fv(N030);
    654     glVertex3fv(P030);
    655     glNormal3fv(N040);
    656     glVertex3fv(P040);
    657     glNormal3fv(N039);
    658     glVertex3fv(P039);
    659     glEnd();
    660 }
    661 
    662 void
    663 Fish004(void)
    664 {
    665     glBegin(GL_POLYGON);
    666     glNormal3fv(N040);
    667     glVertex3fv(P040);
    668     glNormal3fv(N041);
    669     glVertex3fv(P041);
    670     glNormal3fv(N051);
    671     glVertex3fv(P051);
    672     glNormal3fv(N050);
    673     glVertex3fv(P050);
    674     glEnd();
    675     glBegin(GL_POLYGON);
    676     glNormal3fv(N041);
    677     glVertex3fv(P041);
    678     glNormal3fv(N042);
    679     glVertex3fv(P042);
    680     glNormal3fv(N052);
    681     glVertex3fv(P052);
    682     glNormal3fv(N051);
    683     glVertex3fv(P051);
    684     glEnd();
    685     glBegin(GL_POLYGON);
    686     glNormal3fv(N042);
    687     glVertex3fv(P042);
    688     glNormal3fv(N033);
    689     glVertex3fv(P033);
    690     glNormal3fv(N043);
    691     glVertex3fv(P043);
    692     glNormal3fv(N052);
    693     glVertex3fv(P052);
    694     glEnd();
    695     glBegin(GL_POLYGON);
    696     glNormal3fv(N033);
    697     glVertex3fv(P033);
    698     glNormal3fv(N034);
    699     glVertex3fv(P034);
    700     glNormal3fv(N044);
    701     glVertex3fv(P044);
    702     glNormal3fv(N043);
    703     glVertex3fv(P043);
    704     glEnd();
    705     glBegin(GL_POLYGON);
    706     glNormal3fv(N034);
    707     glVertex3fv(P034);
    708     glNormal3fv(N035);
    709     glVertex3fv(P035);
    710     glNormal3fv(N045);
    711     glVertex3fv(P045);
    712     glNormal3fv(N044);
    713     glVertex3fv(P044);
    714     glEnd();
    715     glBegin(GL_POLYGON);
    716     glNormal3fv(N035);
    717     glVertex3fv(P035);
    718     glNormal3fv(N036);
    719     glVertex3fv(P036);
    720     glNormal3fv(N046);
    721     glVertex3fv(P046);
    722     glNormal3fv(N045);
    723     glVertex3fv(P045);
    724     glEnd();
    725     glBegin(GL_POLYGON);
    726     glNormal3fv(N036);
    727     glVertex3fv(P036);
    728     glNormal3fv(N037);
    729     glVertex3fv(P037);
    730     glNormal3fv(N047);
    731     glVertex3fv(P047);
    732     glNormal3fv(N046);
    733     glVertex3fv(P046);
    734     glEnd();
    735     glBegin(GL_POLYGON);
    736     glNormal3fv(N037);
    737     glVertex3fv(P037);
    738     glNormal3fv(N038);
    739     glVertex3fv(P038);
    740     glNormal3fv(N048);
    741     glVertex3fv(P048);
    742     glNormal3fv(N047);
    743     glVertex3fv(P047);
    744     glEnd();
    745     glBegin(GL_POLYGON);
    746     glNormal3fv(N038);
    747     glVertex3fv(P038);
    748     glNormal3fv(N039);
    749     glVertex3fv(P039);
    750     glNormal3fv(N049);
    751     glVertex3fv(P049);
    752     glNormal3fv(N048);
    753     glVertex3fv(P048);
    754     glEnd();
    755     glBegin(GL_POLYGON);
    756     glNormal3fv(N039);
    757     glVertex3fv(P039);
    758     glNormal3fv(N040);
    759     glVertex3fv(P040);
    760     glNormal3fv(N050);
    761     glVertex3fv(P050);
    762     glNormal3fv(N049);
    763     glVertex3fv(P049);
    764     glEnd();
    765     glBegin(GL_POLYGON);
    766     glNormal3fv(N070);
    767     glVertex3fv(P070);
    768     glNormal3fv(N061);
    769     glVertex3fv(P061);
    770     glNormal3fv(N002);
    771     glVertex3fv(P002);
    772     glEnd();
    773     glBegin(GL_POLYGON);
    774     glNormal3fv(N061);
    775     glVertex3fv(P061);
    776     glNormal3fv(N046);
    777     glVertex3fv(P046);
    778     glNormal3fv(N002);
    779     glVertex3fv(P002);
    780     glEnd();
    781     glBegin(GL_POLYGON);
    782     glNormal3fv(N045);
    783     glVertex3fv(P045);
    784     glNormal3fv(N046);
    785     glVertex3fv(P046);
    786     glNormal3fv(N061);
    787     glVertex3fv(P061);
    788     glEnd();
    789     glBegin(GL_POLYGON);
    790     glNormal3fv(N002);
    791     glVertex3fv(P002);
    792     glNormal3fv(N061);
    793     glVertex3fv(P061);
    794     glNormal3fv(N070);
    795     glVertex3fv(P070);
    796     glEnd();
    797     glBegin(GL_POLYGON);
    798     glNormal3fv(N002);
    799     glVertex3fv(P002);
    800     glNormal3fv(N045);
    801     glVertex3fv(P045);
    802     glNormal3fv(N061);
    803     glVertex3fv(P061);
    804     glEnd();
    805 }
    806 
    807 void
    808 Fish005(void)
    809 {
    810     glBegin(GL_POLYGON);
    811     glNormal3fv(N002);
    812     glVertex3fv(P002);
    813     glNormal3fv(N044);
    814     glVertex3fv(P044);
    815     glNormal3fv(N045);
    816     glVertex3fv(P045);
    817     glEnd();
    818     glBegin(GL_POLYGON);
    819     glNormal3fv(N002);
    820     glVertex3fv(P002);
    821     glNormal3fv(N043);
    822     glVertex3fv(P043);
    823     glNormal3fv(N044);
    824     glVertex3fv(P044);
    825     glEnd();
    826     glBegin(GL_POLYGON);
    827     glNormal3fv(N002);
    828     glVertex3fv(P002);
    829     glNormal3fv(N052);
    830     glVertex3fv(P052);
    831     glNormal3fv(N043);
    832     glVertex3fv(P043);
    833     glEnd();
    834     glBegin(GL_POLYGON);
    835     glNormal3fv(N002);
    836     glVertex3fv(P002);
    837     glNormal3fv(N051);
    838     glVertex3fv(P051);
    839     glNormal3fv(N052);
    840     glVertex3fv(P052);
    841     glEnd();
    842     glBegin(GL_POLYGON);
    843     glNormal3fv(N002);
    844     glVertex3fv(P002);
    845     glNormal3fv(N046);
    846     glVertex3fv(P046);
    847     glNormal3fv(N047);
    848     glVertex3fv(P047);
    849     glEnd();
    850     glBegin(GL_POLYGON);
    851     glNormal3fv(N002);
    852     glVertex3fv(P002);
    853     glNormal3fv(N047);
    854     glVertex3fv(P047);
    855     glNormal3fv(N048);
    856     glVertex3fv(P048);
    857     glEnd();
    858     glBegin(GL_POLYGON);
    859     glNormal3fv(N002);
    860     glVertex3fv(P002);
    861     glNormal3fv(N048);
    862     glVertex3fv(P048);
    863     glNormal3fv(N049);
    864     glVertex3fv(P049);
    865     glEnd();
    866     glBegin(GL_POLYGON);
    867     glNormal3fv(N002);
    868     glVertex3fv(P002);
    869     glNormal3fv(N049);
    870     glVertex3fv(P049);
    871     glNormal3fv(N050);
    872     glVertex3fv(P050);
    873     glEnd();
    874     glBegin(GL_POLYGON);
    875     glNormal3fv(N050);
    876     glVertex3fv(P050);
    877     glNormal3fv(N051);
    878     glVertex3fv(P051);
    879     glNormal3fv(N069);
    880     glVertex3fv(P069);
    881     glEnd();
    882     glBegin(GL_POLYGON);
    883     glNormal3fv(N051);
    884     glVertex3fv(P051);
    885     glNormal3fv(N002);
    886     glVertex3fv(P002);
    887     glNormal3fv(N069);
    888     glVertex3fv(P069);
    889     glEnd();
    890     glBegin(GL_POLYGON);
    891     glNormal3fv(N050);
    892     glVertex3fv(P050);
    893     glNormal3fv(N069);
    894     glVertex3fv(P069);
    895     glNormal3fv(N002);
    896     glVertex3fv(P002);
    897     glEnd();
    898 }
    899 
    900 void
    901 Fish006(void)
    902 {
    903     glBegin(GL_POLYGON);
    904     glNormal3fv(N066);
    905     glVertex3fv(P066);
    906     glNormal3fv(N016);
    907     glVertex3fv(P016);
    908     glNormal3fv(N026);
    909     glVertex3fv(P026);
    910     glEnd();
    911     glBegin(GL_POLYGON);
    912     glNormal3fv(N015);
    913     glVertex3fv(P015);
    914     glNormal3fv(N066);
    915     glVertex3fv(P066);
    916     glNormal3fv(N025);
    917     glVertex3fv(P025);
    918     glEnd();
    919     glBegin(GL_POLYGON);
    920     glNormal3fv(N025);
    921     glVertex3fv(P025);
    922     glNormal3fv(N066);
    923     glVertex3fv(P066);
    924     glNormal3fv(N026);
    925     glVertex3fv(P026);
    926     glEnd();
    927     glBegin(GL_POLYGON);
    928     glNormal3fv(N066);
    929     glVertex3fv(P066);
    930     glNormal3fv(N058);
    931     glVertex3fv(P058);
    932     glNormal3fv(N016);
    933     glVertex3fv(P016);
    934     glEnd();
    935     glBegin(GL_POLYGON);
    936     glNormal3fv(N015);
    937     glVertex3fv(P015);
    938     glNormal3fv(N058);
    939     glVertex3fv(P058);
    940     glNormal3fv(N066);
    941     glVertex3fv(P066);
    942     glEnd();
    943     glBegin(GL_POLYGON);
    944     glNormal3fv(N058);
    945     glVertex3fv(P058);
    946     glNormal3fv(N015);
    947     glVertex3fv(P015);
    948     glNormal3fv(N016);
    949     glVertex3fv(P016);
    950     glEnd();
    951 }
    952 
    953 void
    954 Fish007(void)
    955 {
    956     glBegin(GL_POLYGON);
    957     glNormal3fv(N062);
    958     glVertex3fv(P062);
    959     glNormal3fv(N022);
    960     glVertex3fv(P022);
    961     glNormal3fv(N032);
    962     glVertex3fv(P032);
    963     glEnd();
    964     glBegin(GL_POLYGON);
    965     glNormal3fv(N062);
    966     glVertex3fv(P062);
    967     glNormal3fv(N032);
    968     glVertex3fv(P032);
    969     glNormal3fv(N064);
    970     glVertex3fv(P064);
    971     glEnd();
    972     glBegin(GL_POLYGON);
    973     glNormal3fv(N022);
    974     glVertex3fv(P022);
    975     glNormal3fv(N062);
    976     glVertex3fv(P062);
    977     glNormal3fv(N032);
    978     glVertex3fv(P032);
    979     glEnd();
    980     glBegin(GL_POLYGON);
    981     glNormal3fv(N062);
    982     glVertex3fv(P062);
    983     glNormal3fv(N064);
    984     glVertex3fv(P064);
    985     glNormal3fv(N032);
    986     glVertex3fv(P032);
    987     glEnd();
    988 }
    989 
    990 void
    991 Fish008(void)
    992 {
    993     glBegin(GL_POLYGON);
    994     glNormal3fv(N063);
    995     glVertex3fv(P063);
    996     glNormal3fv(N019);
    997     glVertex3fv(P019);
    998     glNormal3fv(N029);
    999     glVertex3fv(P029);
   1000     glEnd();
   1001     glBegin(GL_POLYGON);
   1002     glNormal3fv(N019);
   1003     glVertex3fv(P019);
   1004     glNormal3fv(N063);
   1005     glVertex3fv(P063);
   1006     glNormal3fv(N029);
   1007     glVertex3fv(P029);
   1008     glEnd();
   1009     glBegin(GL_POLYGON);
   1010     glNormal3fv(N063);
   1011     glVertex3fv(P063);
   1012     glNormal3fv(N029);
   1013     glVertex3fv(P029);
   1014     glNormal3fv(N065);
   1015     glVertex3fv(P065);
   1016     glEnd();
   1017     glBegin(GL_POLYGON);
   1018     glNormal3fv(N063);
   1019     glVertex3fv(P063);
   1020     glNormal3fv(N065);
   1021     glVertex3fv(P065);
   1022     glNormal3fv(N029);
   1023     glVertex3fv(P029);
   1024     glEnd();
   1025 }
   1026 
   1027 void
   1028 Fish009(void)
   1029 {
   1030     glBegin(GL_POLYGON);
   1031     glVertex3fv(P059);
   1032     glVertex3fv(P012);
   1033     glVertex3fv(P009);
   1034     glVertex3fv(P060);
   1035     glEnd();
   1036     glBegin(GL_POLYGON);
   1037     glVertex3fv(P012);
   1038     glVertex3fv(P004);
   1039     glVertex3fv(P007);
   1040     glVertex3fv(P009);
   1041     glEnd();
   1042 }
   1043 
   1044 void
   1045 Fish_1(void)
   1046 {
   1047     Fish004();
   1048     Fish005();
   1049     Fish003();
   1050     Fish007();
   1051     Fish006();
   1052     Fish002();
   1053     Fish008();
   1054     Fish009();
   1055     Fish001();
   1056 }
   1057 
   1058 void
   1059 Fish_2(void)
   1060 {
   1061     Fish005();
   1062     Fish004();
   1063     Fish003();
   1064     Fish008();
   1065     Fish006();
   1066     Fish002();
   1067     Fish007();
   1068     Fish009();
   1069     Fish001();
   1070 }
   1071 
   1072 void
   1073 Fish_3(void)
   1074 {
   1075     Fish005();
   1076     Fish004();
   1077     Fish007();
   1078     Fish003();
   1079     Fish002();
   1080     Fish008();
   1081     Fish009();
   1082     Fish001();
   1083     Fish006();
   1084 }
   1085 
   1086 void
   1087 Fish_4(void)
   1088 {
   1089     Fish005();
   1090     Fish004();
   1091     Fish008();
   1092     Fish003();
   1093     Fish002();
   1094     Fish007();
   1095     Fish009();
   1096     Fish001();
   1097     Fish006();
   1098 }
   1099 
   1100 void
   1101 Fish_5(void)
   1102 {
   1103     Fish009();
   1104     Fish006();
   1105     Fish007();
   1106     Fish001();
   1107     Fish002();
   1108     Fish003();
   1109     Fish008();
   1110     Fish004();
   1111     Fish005();
   1112 }
   1113 
   1114 void
   1115 Fish_6(void)
   1116 {
   1117     Fish009();
   1118     Fish006();
   1119     Fish008();
   1120     Fish001();
   1121     Fish002();
   1122     Fish007();
   1123     Fish003();
   1124     Fish004();
   1125     Fish005();
   1126 }
   1127 
   1128 void
   1129 Fish_7(void)
   1130 {
   1131     Fish009();
   1132     Fish001();
   1133     Fish007();
   1134     Fish005();
   1135     Fish002();
   1136     Fish008();
   1137     Fish003();
   1138     Fish004();
   1139     Fish006();
   1140 }
   1141 
   1142 void
   1143 Fish_8(void)
   1144 {
   1145     Fish009();
   1146     Fish008();
   1147     Fish001();
   1148     Fish002();
   1149     Fish007();
   1150     Fish003();
   1151     Fish005();
   1152     Fish004();
   1153     Fish006();
   1154 }
   1155 
   1156 void
   1157 DrawShark(fishRec * fish)
   1158 {
   1159     float mat[4][4];
   1160     int n;
   1161     float seg1, seg2, seg3, seg4, segup;
   1162     float thrash, chomp;
   1163 
   1164     fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360;
   1165 
   1166     thrash = 50.0 * fish->v;
   1167 
   1168     seg1 = 0.6 * thrash * sin(fish->htail * RRAD);
   1169     seg2 = 1.8 * thrash * sin((fish->htail + 45.0) * RRAD);
   1170     seg3 = 3.0 * thrash * sin((fish->htail + 90.0) * RRAD);
   1171     seg4 = 4.0 * thrash * sin((fish->htail + 110.0) * RRAD);
   1172 
   1173     chomp = 0.0;
   1174     if (fish->v > 2.0) {
   1175         chomp = -(fish->v - 2.0) * 200.0;
   1176     }
   1177     P004[1] = iP004[1] + chomp;
   1178     P007[1] = iP007[1] + chomp;
   1179     P010[1] = iP010[1] + chomp;
   1180     P011[1] = iP011[1] + chomp;
   1181 
   1182     P023[0] = iP023[0] + seg1;
   1183     P024[0] = iP024[0] + seg1;
   1184     P025[0] = iP025[0] + seg1;
   1185     P026[0] = iP026[0] + seg1;
   1186     P027[0] = iP027[0] + seg1;
   1187     P028[0] = iP028[0] + seg1;
   1188     P029[0] = iP029[0] + seg1;
   1189     P030[0] = iP030[0] + seg1;
   1190     P031[0] = iP031[0] + seg1;
   1191     P032[0] = iP032[0] + seg1;
   1192     P033[0] = iP033[0] + seg2;
   1193     P034[0] = iP034[0] + seg2;
   1194     P035[0] = iP035[0] + seg2;
   1195     P036[0] = iP036[0] + seg2;
   1196     P037[0] = iP037[0] + seg2;
   1197     P038[0] = iP038[0] + seg2;
   1198     P039[0] = iP039[0] + seg2;
   1199     P040[0] = iP040[0] + seg2;
   1200     P041[0] = iP041[0] + seg2;
   1201     P042[0] = iP042[0] + seg2;
   1202     P043[0] = iP043[0] + seg3;
   1203     P044[0] = iP044[0] + seg3;
   1204     P045[0] = iP045[0] + seg3;
   1205     P046[0] = iP046[0] + seg3;
   1206     P047[0] = iP047[0] + seg3;
   1207     P048[0] = iP048[0] + seg3;
   1208     P049[0] = iP049[0] + seg3;
   1209     P050[0] = iP050[0] + seg3;
   1210     P051[0] = iP051[0] + seg3;
   1211     P052[0] = iP052[0] + seg3;
   1212     P002[0] = iP002[0] + seg4;
   1213     P061[0] = iP061[0] + seg4;
   1214     P069[0] = iP069[0] + seg4;
   1215     P070[0] = iP070[0] + seg4;
   1216 
   1217     fish->vtail += ((fish->dtheta - fish->vtail) * 0.1);
   1218 
   1219     if (fish->vtail > 0.5) {
   1220         fish->vtail = 0.5;
   1221     } else if (fish->vtail < -0.5) {
   1222         fish->vtail = -0.5;
   1223     }
   1224     segup = thrash * fish->vtail;
   1225 
   1226     P023[1] = iP023[1] + segup;
   1227     P024[1] = iP024[1] + segup;
   1228     P025[1] = iP025[1] + segup;
   1229     P026[1] = iP026[1] + segup;
   1230     P027[1] = iP027[1] + segup;
   1231     P028[1] = iP028[1] + segup;
   1232     P029[1] = iP029[1] + segup;
   1233     P030[1] = iP030[1] + segup;
   1234     P031[1] = iP031[1] + segup;
   1235     P032[1] = iP032[1] + segup;
   1236     P033[1] = iP033[1] + segup * 5.0;
   1237     P034[1] = iP034[1] + segup * 5.0;
   1238     P035[1] = iP035[1] + segup * 5.0;
   1239     P036[1] = iP036[1] + segup * 5.0;
   1240     P037[1] = iP037[1] + segup * 5.0;
   1241     P038[1] = iP038[1] + segup * 5.0;
   1242     P039[1] = iP039[1] + segup * 5.0;
   1243     P040[1] = iP040[1] + segup * 5.0;
   1244     P041[1] = iP041[1] + segup * 5.0;
   1245     P042[1] = iP042[1] + segup * 5.0;
   1246     P043[1] = iP043[1] + segup * 12.0;
   1247     P044[1] = iP044[1] + segup * 12.0;
   1248     P045[1] = iP045[1] + segup * 12.0;
   1249     P046[1] = iP046[1] + segup * 12.0;
   1250     P047[1] = iP047[1] + segup * 12.0;
   1251     P048[1] = iP048[1] + segup * 12.0;
   1252     P049[1] = iP049[1] + segup * 12.0;
   1253     P050[1] = iP050[1] + segup * 12.0;
   1254     P051[1] = iP051[1] + segup * 12.0;
   1255     P052[1] = iP052[1] + segup * 12.0;
   1256     P002[1] = iP002[1] + segup * 17.0;
   1257     P061[1] = iP061[1] + segup * 17.0;
   1258     P069[1] = iP069[1] + segup * 17.0;
   1259     P070[1] = iP070[1] + segup * 17.0;
   1260 
   1261     glPushMatrix();
   1262 
   1263     glTranslatef(0.0, 0.0, -3000.0);
   1264 
   1265     glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]);
   1266     n = 0;
   1267     if (mat[0][2] >= 0.0) {
   1268         n += 1;
   1269     }
   1270     if (mat[1][2] >= 0.0) {
   1271         n += 2;
   1272     }
   1273     if (mat[2][2] >= 0.0) {
   1274         n += 4;
   1275     }
   1276     glScalef(2.0, 1.0, 1.0);
   1277 
   1278     glEnable(GL_CULL_FACE);
   1279     switch (n) {
   1280     case 0:
   1281         Fish_1();
   1282         break;
   1283     case 1:
   1284         Fish_2();
   1285         break;
   1286     case 2:
   1287         Fish_3();
   1288         break;
   1289     case 3:
   1290         Fish_4();
   1291         break;
   1292     case 4:
   1293         Fish_5();
   1294         break;
   1295     case 5:
   1296         Fish_6();
   1297         break;
   1298     case 6:
   1299         Fish_7();
   1300         break;
   1301     case 7:
   1302         Fish_8();
   1303         break;
   1304     }
   1305     glDisable(GL_CULL_FACE);
   1306 
   1307     glPopMatrix();
   1308 }
   1309